package com.common.utils;

import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;

import javax.annotation.Resource;

import org.apache.log4j.Logger;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.system.domain.T_data_dic;
import com.system.mapper.T_data_dicMapper;

/**
 * 待优化实现审计日志跟踪记录类
 * 1、主要是实现datadic数据缓存；
 * 2、dataMap实现线程安全；
 * @author davexin
 * 2016-3-25
 */

//@Service
public class SystemDataDicCache {

	Logger log = Logger.getLogger(SystemDataDicCache.class);
	private static Map dataMap = Collections.synchronizedMap(new HashMap());

	/*
	 * 查询缓存数据根据dataNo
	 */
	public static Object findByDataNo(String dataNo){
		//如果缓存中已经存在
		if(dataMap.containsKey(dataNo)){
			return dataMap.get(dataNo);
		}else{//如果缓存中不存在，重新查询数据库一次
			return null;				
		}
	}

	public static String remove(String dataNo){
		dataMap.remove(dataNo);
		if(dataMap.containsKey(dataNo)){
			return "删除"+dataNo+"失败！";
		}
		return "删除"+dataNo+"成功！";
	}

	public static void add(T_data_dic dic){
		dataMap.put(dic.getData_no(), dic);
	}
	
	//设置熔断标志
	public static void setRdFlag(T_data_dic d){
		if(d!=null){
			dataMap.put(d.getData_no(), d);
		}else{
			//log.error("------setRdFlag失败="+d+"为null！");
		}
	}

	public static String clearAll(){
		dataMap.clear();
		return "clear dataMap成功！";
	}


}
